/**
 * 
 */

/**
 * @author Ashley
 *
 */
public class UnaryOp extends Operator {
	
	public UnaryOp(String newOp) {
		super(newOp);
	}
	
	@Override
	public boolean isUnaryOp() {
		return true;
	}
	
	@Override
	public STO unaryOperand(STO op) {
		if (op.isError()) { 
			return op ;
		}
		STO sto = null;
		
		Type op_type = op.getType();
		if (!op_type.isNumeric() && !op_type.isPointerType()) {
			sto = new ErrorSTO("error2_Type");
			return sto;
		}
		if (!op.isModLValue()){
			sto = new ErrorSTO("error2_Lval");
			return sto ;
		}
		sto = new ExprSTO(this.getOpName(), op.getType());
		return sto ;
	}
	
}
